// 队列
function Queue() {
    // 队列数据
    this.items = []

    // enqueue(element)：向队列尾部添加一个（或多个）新的项。
    Queue.prototype.enqueue = function (element) {
        this.items.push(element)
    }

    // dequeue()：移除队列的第一（即排在队列最前面的）项，并返回被移除的元素。
    Queue.prototype.dequeue = function () {
        return this.items.shift()
    }

    // front()：返回队列中第一个元素——最先被添加，也将是最先被移除的元素。
    Queue.prototype.front = function () {
        return this.items[0]
    }

    // isEmpty()：如果队列中不包含任何元素，返回true，否则返回false。
    Queue.prototype.isEmpty = function () {
        return this.items.length == 0
    }

    // size()：返回队列包含的元素个数，与数组的length属性类似。
    Queue.prototype.size = function () {
        return this.items.length
    }
}